/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package iTraceMD.impl;

import iTraceMD.AbstractionLevel;
import iTraceMD.Aspect;
import iTraceMD.ElementTraceLink;
import iTraceMD.ITraceMDPackage;
import iTraceMD.LinkMode;
import iTraceMD.RelationType;
import iTraceMD.TechnicalBinding;
import iTraceMD.TransformationType;
import iTraceMD.TypeLink;
import iTraceMD.iTraceMDModel;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;

import org.eclipse.emf.internal.cdo.CDOObjectImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Element Trace Link</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getNameModelTrace <em>Name Model Trace</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getVersion <em>Version</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getCreatedOn <em>Created On</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getMode <em>Mode</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getComment <em>Comment</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getTechnicalBinding <em>Technical Binding</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getTypeLink <em>Type Link</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getRelationType <em>Relation Type</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getModelName <em>Model Name</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getAbstractionLevel <em>Abstraction Level</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#isMetamodel <em>Metamodel</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getAspect <em>Aspect</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getRuleName <em>Rule Name</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getCreatedBy <em>Created By</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getTransformationType <em>Transformation Type</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getBelongs <em>Belongs</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getRef <em>Ref</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getTraceLink <em>Trace Link</em>}</li>
 *   <li>{@link iTraceMD.impl.ElementTraceLinkImpl#getElement <em>Element</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class ElementTraceLinkImpl extends CDOObjectImpl implements ElementTraceLink {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ElementTraceLinkImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return ITraceMDPackage.Literals.ELEMENT_TRACE_LINK;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected int eStaticFeatureCount() {
		return 0;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getNameModelTrace() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__NAME_MODEL_TRACE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNameModelTrace(String newNameModelTrace) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__NAME_MODEL_TRACE, newNameModelTrace);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getVersion() {
		return (Integer)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__VERSION, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setVersion(int newVersion) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__VERSION, newVersion);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getCreatedOn() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__CREATED_ON, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setCreatedOn(String newCreatedOn) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__CREATED_ON, newCreatedOn);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public LinkMode getMode() {
		return (LinkMode)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__MODE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMode(LinkMode newMode) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__MODE, newMode);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getComment() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__COMMENT, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setComment(String newComment) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__COMMENT, newComment);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TechnicalBinding getTechnicalBinding() {
		return (TechnicalBinding)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TECHNICAL_BINDING, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTechnicalBinding(TechnicalBinding newTechnicalBinding) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TECHNICAL_BINDING, newTechnicalBinding);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TypeLink getTypeLink() {
		return (TypeLink)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TYPE_LINK, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeLink(TypeLink newTypeLink) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TYPE_LINK, newTypeLink);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public RelationType getRelationType() {
		return (RelationType)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__RELATION_TYPE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRelationType(RelationType newRelationType) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__RELATION_TYPE, newRelationType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getModelName() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__MODEL_NAME, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setModelName(String newModelName) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__MODEL_NAME, newModelName);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AbstractionLevel getAbstractionLevel() {
		return (AbstractionLevel)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__ABSTRACTION_LEVEL, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAbstractionLevel(AbstractionLevel newAbstractionLevel) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__ABSTRACTION_LEVEL, newAbstractionLevel);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean isMetamodel() {
		return (Boolean)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__METAMODEL, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMetamodel(boolean newMetamodel) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__METAMODEL, newMetamodel);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Aspect getAspect() {
		return (Aspect)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__ASPECT, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAspect(Aspect newAspect) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__ASPECT, newAspect);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getRuleName() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__RULE_NAME, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRuleName(String newRuleName) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__RULE_NAME, newRuleName);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getCreatedBy() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__CREATED_BY, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setCreatedBy(String newCreatedBy) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__CREATED_BY, newCreatedBy);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TransformationType getTransformationType() {
		return (TransformationType)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TRANSFORMATION_TYPE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTransformationType(TransformationType newTransformationType) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TRANSFORMATION_TYPE, newTransformationType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public iTraceMDModel getBelongs() {
		return (iTraceMDModel)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__BELONGS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setBelongs(iTraceMDModel newBelongs) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__BELONGS, newBelongs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EObject getRef() {
		return (EObject)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__REF, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRef(EObject newRef) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__REF, newRef);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getTraceLink() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TRACE_LINK, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTraceLink(String newTraceLink) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__TRACE_LINK, newTraceLink);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getElement() {
		return (String)eGet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__ELEMENT, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setElement(String newElement) {
		eSet(ITraceMDPackage.Literals.ELEMENT_TRACE_LINK__ELEMENT, newElement);
	}

} //ElementTraceLinkImpl
